package basic

import (
	"bufio"
	"fmt"
	"io"
	"strings"
)

/**
函数与闭包
同js
*/

// 函数去实现接口 是类型就能实现接口 函数也能实现接口
type Sqx func() int

func (Sqx) Write(p []byte) (n int, err error) {
	// 这里可以找已经实现 Writer 代理下

	panic("implement me")
}

var i = 0

func (s Sqx) Read(p []byte) (n int, err error) {
	//// 这里可以找已经实现 Reader 代理下
	//strings.NewReader("").Read(p)
	// scanner := bufio.NewScanner() 通过这个使用
	// for scanner.Scan(){scanner.Text}
	// 循环写注意 io.EOF停掉  这里必须要有eof停止否则死循环

	if i > 10 {
		return 0, io.EOF
	}
	i++
	// 实现下
	str := "admin1112222"
	return strings.NewReader(str).Read(p)
}

func BB() {
	//var F Sqx = func() int {
	//
	//}
	//
	//F.Read()
	//F.Write()

	var s Sqx
	scanner := bufio.NewScanner(s)
	for scanner.Scan() {
		fmt.Println(scanner.Text())
	}

}
